﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Locallab.Ack999Helper.BusinessContextReader
{
    [Serializable]
    internal class InterChangeInformation
    {
        public string FileID { get; set; }

        public string AuthorizationInformationQualifier { get; set; }

        public string AuthorizationInformation { get; set; }

        public string SecurityInformationQualifier { get; set; }

        public string SecurityInformation { get; set; }

        public string InterchangeSenderIDQualifier { get; set; }

        public string InterchangeSenderID { get; set; }

        public string InterchangeReceiverIDQualifier { get; set; }

        public string InterchangeReceiverID { get; set; }

        public string InterchangeDate { get; set; }

        public string InterchangeTime { get; set; }

        public string InterchangeControlStandardsIdentifier { get; set; }

        public string InterchangeControlVersionNumber { get; set; }

        public int InterchangeControlNumber { get; set; }

        public string AcknowledgmentRequested { get; set; }

        public string UsageIndicator { get; set; }        

        public string FunctionalIdentifier { get; set; }

        public string FunctionalSenderCode { get; set; }

        public string FunctionalReceiverCode { get; set; }

        public string FunctionalReceivedDate { get; set; }

        public string FunctionalReceivedTime { get; set; }

        public int FunctionalControlNumber { get; set; }

        public string ResponsibleAgency { get; set; }

        public string Version { get; set; }
        
    }

    [Serializable]
    public class FileHeaderData
    {
        public string SegmentDelimiter { get; set; }
        public string ElementDelimiter { get; set; }
        public string ComponentDelimiter { get; set; }
        public string Version { get; set; }
        public string FileName { get; set; }
        public DateTime ReceivedDate { get; set; }
        public string FileID { get; set; }
        public string Sender { get; set; }
        public string Receiver { get; set; }

        public FileHeaderData()
        {
            ReceivedDate = DateTime.Now;
            FileID = Guid.NewGuid().ToString();            
        }
    }

    [Serializable]
    internal class BusinessContext
    {
        public int FileLineNumber { get; set; }
        public int StartIndex { get; set; }
        public int EndIndex { get; set; }
        public string BusinessIDQualifier { get; set; }
        public string BusinessID { get; set; }
        public bool IsProcessed { get; set; }

        public BusinessContext()
        {
            IsProcessed = false;
        }        
    }
}
